#ifndef __GRAPHICSRENDER_UTIL_H__
#define __GRAPHICSRENDER_UTIL_H__

#include "Config.h"

#ifdef WIND_DEBUG
#include "vld.h"
#endif //WIND_DEBUG

#include <vector>
#include <string>
#include <memory>
#include <algorithm>
#include <assert.h>
#include <unordered_map>
#include <unordered_set>
#include <fstream>
#include <functional>

#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#include <objbase.h>

namespace WindGE
{
	#define safe_release(x)		 { if(x) { (x)->Release(); (x) = 0;	} }
	#define safe_delete(x)		 { if(x) { delete (x); (x) = 0;		} }
	#define safe_delete_array(x) { if(x) { delete[] (x); (x) = 0;	} }
	
	#define GUID_LEN 64

	const static float Pi = 3.141592654f;
	const static float Infinity = FLT_MAX;
	const static float Epsilon = 0.000001f;

	class guid;
	typedef std::shared_ptr<guid> guid_ptr;
}

#endif	//__GRAPHICSRENDER_UTIL_H__